﻿/// <reference name="E:\SilverLight\SiliverLight文件\SilverLight网页交互\交互操作\CollBrowser\jQuery1.4.1.js"/>
/*! 
window.jQuery = window.$jQuery = jQuery;
* 附加脚本
*/

//当前用于保存点击的路径对像
var CollBrowserCurrentPathStr_ = "";
//对页面的每个原素都加上框的指示
jQuery("*").each(
            function (i) {
                jQuery(this).hover(function () {
                    try {
                        jQuery(this).addClass("jqSelectedhover");
                    }
                    catch (e) {

                    }

                }
                , function () {
                    try {
                        //移除所有已经选择标识过的对像
                        jQuery(".jqSelectedhover").removeClass("jqSelectedhover");
                    } catch (e)
                    { }
                }).click(function (obj) {

                    if (jQuery(this).find(".jqSelectedhover").length == 1) {

                        jQuery(".jqSelectedEl").removeClass("jqSelectedEl");
                        //找到当前对像进行处理
                        jQuery(this).find(".jqSelectedhover").eq(0).addClass("jqSelectedEl");
                        
                        //指定当前点击的对像路径
                        CollBrowserCurrentPathStr_ = pathToJsonStr(
                            getPath(jQuery(this).find(".jqSelectedhover").get(0), "")
                         )
                          
                    }
                });
            }
        );
 


///currentLayer 当前循环的层次 从0 开始
///pathStr      路径表达式
///el           html 原素    
function getPath(el, pathStr) {
    //只有找到 document.body 时才返回

    var jqel = jQuery(el);
    jqel.parent().find(el.nodeName).each(function (i) {
        if (this == el) {
            if (el.id != "") {
                pathStr += "e:'" + el.nodeName + "'^index:'" + i + "'^id:'" + el.id + "'|";

            }
            else {
                pathStr += "e:'" + el.nodeName + "'^index:'" + i + "'^id:''|";
            }
        }
    })

    if (el.parentNode != null && pathStr.indexOf("index:") != -1) {
        pathStr = getPath(el.parentNode, pathStr);
    }
    return pathStr;
}
//将路径表达式转换成 json字符串

function pathToJsonStr(pathstr) {
    //处理路径表达式字符串
    var arr = pathstr.split("|");
    //将数组转换成json字符串
    var temparr = [];
    for (k = arr.length - 1; k >= 0; k--) {

        if (arr[k] != "") {
            //处理内容
            var cont = arr[k].split("^");

            temparr.push("{" + cont[0] + "," + cont[1] + "," + (cont.length >= 2 ? cont[2] : "") + "}");
        }
    }
    return ("[" + temparr.join(",") + "]");

}

//得到当前的路径
function getCurrentPath() {

    return CollBrowserCurrentPathStr_;
}

//扩大选区功能JS方法
function PervSelectSpace() {

    
    var cl = jQuery(".jqSelectedEl");
    cl.parent().addClass("jqSelectedEl");
    cl.removeClass("jqSelectedEl");

    //指定当前点击的对像路径
    CollBrowserCurrentPathStr_ = pathToJsonStr(
                            getPath(cl.parent().get(0), "")
                         )

    return CollBrowserCurrentPathStr_;
}